In the field of computer vision, “visual odometry” refers to the process of inferring the pose of a camera by analyzing a collection of images captured using the camera. As used herein, the “pose” of a camera refers to the location and orientation of the camera. A typical visual odometry application will involve estimating a series of camera poses from a set of point correspondences identified in image pairs that depict a three-dimensional scene. In some cases the camera poses are estimated using two-dimensional imagery, while in other cases a more accurate estimate can be achieved by using a three-dimensional template to register image pairs. In either case, the analyzed images may comprise, for example, a collection unorganized still images, frames extracted from a video recording, or some combination thereof. Algorithms used to perform visual odometry are often referred to as Structure from Motion (SFM) or Simultaneous Localization and Mapping (SLAM) algorithms. Computationally efficient and accurate visual odometry algorithms are valuable because they enable a wide range of applications such as three-dimensional image-based modeling and rendering, video stabilization, panorama stitching, video augmentation, vision-based robot navigation, and human-computer interaction. For example, in filmmaking SFM algorithms enable match moving techniques that allow computer-generated imagery (CGI) to be seamlessly integrated into live-action footage with correct position, scale, orientation, and motion.